38 research outputs found
Architectural Tactics for Energy Efficiency: Review of the Literature and Research Roadmap
The energy consequences of software are rapidly growing: at the high-end, server farms consume enormous amounts of energy; at the low-end there is ever-increasing emphasis on battery-powered mobile and Internet-of-Things (IoT) devices with equally increasing complex usage scenarios. Conversely, there has been little attention to how software architectures can be designed for energy efficiency. While other software qualities—--think of performance or availability--—have been extensively studied, there is little research on how to reason about energy-consumption as a first-class citizen. We provide a basis for reasoning about design decisions for energy efficiency by deriving a kit of reusable architectural tactics derived from literature. We use the well-known open-search and snowballing methodologies to attain primary studies, and subsequently used thematic coding of such studies to identify recurrences and commonalities among the design strategies presented. The result of this process is a set of 10 architectural tactics for energy efficiency. These tactics provide a rational basis for architectural design and analysis for energy efficiency
Towards Surgically-Precise Technical Debt Estimation: Early Results and Research Roadmap
The concept of technical debt has been explored from many perspectives but
its precise estimation is still under heavy empirical and experimental inquiry.
We aim to understand whether, by harnessing approximate, data-driven,
machine-learning approaches it is possible to improve the current techniques
for technical debt estimation, as represented by a top industry quality
analysis tool such as SonarQube. For the sake of simplicity, we focus on
relatively simple regression modelling techniques and apply them to modelling
the additional project cost connected to the sub-optimal conditions existing in
the projects under study. Our results shows that current techniques can be
improved towards a more precise estimation of technical debt and the case study
shows promising results towards the identification of more accurate estimation
of technical debt.Comment: 6 page
DataOps for Societal Intelligence: a Data Pipeline for Labor Market Skills Extraction and Matching
Big Data analytics supported by AI algorithms can support skills localization
and retrieval in the context of a labor market intelligence problem. We
formulate and solve this problem through specific DataOps models, blending data
sources from administrative and technical partners in several countries into
cooperation, creating shared knowledge to support policy and decision-making.
We then focus on the critical task of skills extraction from resumes and
vacancies featuring state-of-the-art machine learning models. We showcase
preliminary results with applied machine learning on real data from the
employment agencies of the Netherlands and the Flemish region in Belgium. The
final goal is to match these skills to standard ontologies of skills, jobs and
occupations
Architecture Smells vs. Concurrency Bugs: an Exploratory Study and Negative Results
Technical debt occurs in many different forms across software artifacts. One
such form is connected to software architectures where debt emerges in the form
of structural anti-patterns across architecture elements, namely, architecture
smells. As defined in the literature, ``Architecture smells are recurrent
architectural decisions that negatively impact internal system quality", thus
increasing technical debt. In this paper, we aim at exploring whether there
exist manifestations of architectural technical debt beyond decreased code or
architectural quality, namely, whether there is a relation between architecture
smells (which primarily reflect structural characteristics) and the occurrence
of concurrency bugs (which primarily manifest at runtime). We study 125
releases of 5 large data-intensive software systems to reveal that (1) several
architecture smells may in fact indicate the presence of concurrency problems
likely to manifest at runtime but (2) smells are not correlated with
concurrency in general -- rather, for specific concurrency bugs they must be
combined with an accompanying articulation of specific project characteristics
such as project distribution. As an example, a cyclic dependency could be
present in the code, but the specific execution-flow could be never executed at
runtime
Blockchain-Oriented Services Computing in Action: Insights from a User Study
Blockchain architectures promise disruptive innovation but factually they
pose many architectural restrictions to classical service-based applications
and show considerable design, implementation, and operations overhead.
Furthermore, the relation between such overheads and user benefits is not clear
yet. To shed light on the aforementioned relations, a service-based blockchain
architecture was designed and deployed as part of a field study in real-life
experimentation. An observational approach was then performed to elaborate on
the technology-acceptance of the service-based blockchain architecture in
question. Evidence shows that the resulting architecture is, in principle, not
different than other less complex equivalents; furthermore, the architectural
limitations posed by the blockchain-oriented design demand a significant
additional effort to be put onto even the simplest of functionalities. We
conclude that further research shall be invested in clarifying further the
design principles we learned as part of this study as well as any trade-offs
posed by blockchain-oriented service design and operation
Blockchain and Cryptocurrencies: a Classification and Comparison of Architecture Drivers
Blockchain is a decentralized transaction and data management solution, the
technological leap behind the success of Bitcoin and other cryptocurrencies. As
the variety of existing blockchains and distributed ledgers continues to
increase, adopters should focus on selecting the solution that best fits their
needs and the requirements of their decentralized applications, rather than
developing yet another blockchain from scratch. In this paper we present a
conceptual framework to aid software architects, developers, and decision
makers to adopt the right blockchain technology. The framework exposes the
interrelation between technological decisions and architectural features,
capturing the knowledge from existing academic literature, industrial products,
technical forums/blogs, and experts' feedback. We empirically show the
applicability of our framework by dissecting the platforms behind Bitcoin and
other top 10 cryptocurrencies, aided by a focus group with researchers and
industry practitioners. Then, we leverage the framework together with key
notions of the Architectural Tradeoff Analysis Method (ATAM) to analyze four
real-world blockchain case studies from industry and academia. Results shown
that applying our framework leads to a deeper understanding of the
architectural tradeoffs, allowing to assess technologies more objectively and
select the one that best fit developers needs, ultimately cutting costs,
reducing time-to-market and accelerating return on investment.Comment: Accepted for publication at journal Concurrency and Computation:
Practice and Experience. Special Issue on distributed large scale
applications and environment
Toward a technical debt conceptualization for serverless computing
© 2020 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.Serverless computing aims at reducing processing and operational units to single event-driven functions for service orchestration and choreography. With its micro-granular architectural characteristics, serverless computing is bound to face considerable architectural issues and challenges in the medium- and long-term; are these bound to become Technical Debt? As known to many, technical debt is a metaphor that reflects the additional long-run project costs connected to immediately-expedient but unsavvy technical decisions. However, what does technical debt mean and how is it expressed in serverless computing and other hybrid compute models? This article represents the first attempt to conceptualize Technical Debt in such a context; we base our arguments over a technical overview of serverless computing concepts and practices and elaborate on them via empirical inquiry. Our results suggest that higher serviceability of serverless technologies is also characterized by the absence of mechanisms to support an adequate maintainability, testability, and monitoring of serverless systems. Indeed, in case of unexpected behaviours, testing and maintenance activities are more complex and more expensive, as mainly based on non-automated, manual tasks
Data Mesh: a Systematic Gray Literature Review
Data mesh is an emerging domain-driven decentralized data architecture that
aims to minimize or avoid operational bottlenecks associated with centralized,
monolithic data architectures in enterprises. The topic has picked the
practitioners' interest, and there is considerable gray literature on it. At
the same time, we observe a lack of academic attempts at defining and building
upon the concept. Hence, in this article, we aim to start from the foundations
and characterize the data mesh architecture regarding its design principles,
architectural components, capabilities, and organizational roles. We
systematically collected, analyzed, and synthesized 114 industrial gray
literature articles. The review provides insights into practitioners'
perspectives on the four key principles of data mesh: data as a product, domain
ownership of data, self-serve data platform, and federated computational
governance. Moreover, due to the comparability of data mesh and SOA
(service-oriented architecture), we mapped the findings from the gray
literature into the reference architectures from the SOA academic literature to
create the reference architectures for describing three key dimensions of data
mesh: organization of capabilities and roles, development, and runtime.
Finally, we discuss open research issues in data mesh, partially based on the
findings from the gray literature
Detecting Code Smells using Machine Learning Techniques: Are We There Yet?
Code smells are symptoms of poor design and im- plementation choices weighing heavily on the quality of produced source code. During the last decades several code smell detection tools have been proposed. However, the literature shows that the results of these tools can be subjective and are intrinsically tied to the nature and approach of the detection. In a recent work the use of Machine-Learning (ML) techniques for code smell detection has been proposed, possibly solving the issue of tool subjectivity giving to a learner the ability to discern between smelly and non-smelly source code elements. While this work opened a new perspective for code smell detection, it only considered the case where instances affected by a single type smell are contained in each dataset used to train and test the machine learners. In this work we replicate the study with a different dataset configuration containing instances of more than one type of smell. The results reveal that with this configuration the machine learning techniques reveal critical limitations in the state of the art which deserve further research